﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
#if !DOT_NET
using Windows.Foundation;

#endif

namespace StyleMVVM.Configuration
{
	public interface IConfigurationStorageProvider
	{
		bool CanSet { get; }

#if NETFX_CORE
		IAsyncOperation<ConfigValuePair> GetValue(string valueName, Type valueType);

		IAsyncOperation<bool> SetValue(string valueName, object newValue);

		IAsyncOperation<ConfigValuePair> GetUserValue(string username, string valueName, Type valueType);

		IAsyncOperation<bool> SetUserValue(string username, string valueName, object newValue);
#else
		Task<ConfigValuePair> GetValue(string valueName, Type valueType);

		Task<bool> SetValue(string valueName, object newValue);

		Task<ConfigValuePair> GetUserValue(string username, string valueName, Type valueType);

		Task<bool> SetUserValue(string username, string valueName, object newValue);
#endif
	}
}